package com.itheima.d4_new;

//目标：掌握第二种创建线程的方式-实现Runnable接口
public class Demo02 {
    public static void main(String[] args) {
        /**
         * Thread构造器：
         *      Thread(String name)：可以为当前线程指定名称
         *      Thread(Runnable target)：封装Runnable对象成为线程对象
         *      Thread(Runnable target,String name )：封装Runnable对象成为线程对象，并指定线程名称
         *
         * 优点：线程任务类只是实现接口，可以继续继承类和实现接口，扩展性强
         *
         * 缺点：编程多一层对象包装，如果线程有执行结果是不可以直接返回的
         */
        //需求：使用多线程技术，让程序能同时做文件上传和文件下载的操作

        //1.自定义一个线程任务类，实现Runnable接口，重写run方法

        //2.创建Runnable任务对象
        MyRunnable runnable = new MyRunnable();

        //3.创建Thread线程，把Runnable对象交给线程
        //Thread thread = new Thread(runnable);

        //也可以直接new一个匿名内部类的任务对象
        Thread thread = new Thread(() -> {
            for (int i = 0; i < 1000; i++) {
                System.out.println("文件上传：" + i);
            }
        });

//        Thread thread = new Thread(runnable);

        //4.调用线程对象的start()方法开启线程
        thread.start();

        //5.主线程继续负责：文件下载
        for (int i = 0; i < 1000; i++) {
            System.out.println("文件下载：" + i);
        }
    }
}
